package com.lw.syn;

import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author LW
 * @2020/8/18 14:29
 */
//测试JUC安全类型的集合
public class TestJUC {

    //不延时，主线程比另一个线程跑的快的话，就直接把为结束的打印了
    public static void main(String[] args) throws InterruptedException {
        //别人写好的，这个类本来就是安全的    没有到一万的话就是因为 主线程跑的快了
        CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<String>();
        for (int i = 0; i < 10000; i++) {
            new Thread(()->{//子线程
                list.add(Thread.currentThread().getName());
                //System.out.println(Thread.currentThread().getName());
            }).start();

        }
        System.out.println(Thread.currentThread().getName());
        //打印是在主线程，操作list是在子线程,sleep延时是保证子线程执行结束 再执行主线程打印
        Thread.sleep(1000);
        System.out.println(list.size());
    }
}

/**Thread-0
 Thread-1
 Thread-2
 Thread-3
 Thread-4
 Thread-5
 main
 Thread-6
 Thread-7
 Thread-8
 Thread-9
 10
 *
 */
